Alphabet soup cryptography

ABSTRACT

Computer methods, systems, and devices, providing automatic permutations of a programmed modified random symbol square matrix producing one time pad messages are disclosed enabling messages to be encrypted from plain text which is typed into a computer thereby selecting random symbols from the matrix. Typing in text in a continuous stream yields a continuous stream of enciphered symbols. The input into a computer via an input device activates a computer program driven device called a sliding scale whose function is to select random symbols from the matrix. The sliding scale responds to the program containing the applicable algorithms for encryption and decryption. Initiating input into the computer requires the selection of an entry point to activate the algorithms given in the Appendix herein. In the 96×96 Square described, there are 9216 entry points yielding many individual alphabets from which to select random symbols.

BRIEF SUMMARY OF THE INVENTION

[0001] This invention provides an improved method, system, and devicesfor encrypted data processing including encryption, and decryption. Itrelates to computer systems containing devices that have installedtherein programmed encryption methods which will yield an encrypted ‘onetime-pad’ message by automatically selecting symbols from a modifiedVigenere Square matrix containing randomly scrambled alphabets, numbersand symbols. Alphabet Soup produces one time pad messages in that itcomposes encrypted messages of totally random symbols. This is done bytyping literal script into a computer containing the Alphabet Soupencryption and decryption programs. Traditional one time pads are slowand cumbersome. Alphabet Soup moves at the speed of the capability ofthe typist. This invention allows anyone with computer capabilities tocompose one time pad messages which were once the purview ofcryptographers and cryptanalyists. It gives them the ability to decryptencoded messages in an almost instantaneous operation that once wasextremely time consuming. Anyone with an Alphabet Soup system canencrypt voluminous data files at whatever speed the typist is capableof. Decryption of these data files is even quicker. The inventiveconcept consists of a unique method for data encryption embodied in acomputer program written in a high level computer language incorporatingthe capabilities of producing and communicating a one time pad messagewithout all of the associated problems of transmission, or theclumsiness of composition and decryption. The savings in time, advancein capabilities, and use by individuals not in the world of cryptographymake this a user friendly desirable acquisition. The decryption processis the reverse of the encryption-process. The algorithms for theseprocesses are contained in Appendix 1, and 2, herein, with theirattendant flow charts, FIG. 6, and FIG. 7.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING(S)

[0002]FIG. 1 is a plan view of Vigenere Square Matrix with Sliding Scaleand Index Pointer.

[0003]FIG. 2 is a fragmentary schematic of a modified Matrix 1′ withSliding Scale and Index Pointer.

[0004]FIGS. 3, 4, and 5 constitute a fragmentary schematic diagram ofthe Matrix 1′ with Sliding Scale and Index Pointer.

[0005]FIG. 3 illustrates the selection of the first symbol of theencoded message.

[0006]FIG. 4 illustrates the selection of the second symbol of theencoded message.

[0007]FIG. 5 illustrates the selection of the third symbol of theencoded message.

[0008]FIG. 6 is a flow diagram of the method for converting literalcharacters of a national language into encrypted symbols to be containedin an encrypted message, illustrating operation of the algorithm inAppendix 1.

[0009]FIG. 7 is a flow diagram of the method for converting encryptedsymbols into the national language from which the encrypted message wasderived illustrating the operation of the algorithm in Appendix 2.

DETAILED DESCRIPTION OF THE PREFERRED EMBBODIMENT OF THE INVENTION

[0010] This invention consists of the following components:

[0011] a) a matrix containing totally randomized symbols consisting ofthe upper and lower case English alphabets, the numerals 0-9 and all thenon-literal symbols on the 104 keys of an expanded computer keyboardwhich includes the carriage return (enter) and the space bar, i.e.26+26+10+32+2=96 symbols in this implementation. These 96 symbols arescrambled randomly and laid out in strings, or rows, of which there are96 forming a 96×96 matrix. The matrix is divided into 9216 cells whichare numbered consecutively from 1 in the upper left hand corner to 9216in the lower right hand corner. Each of these squares contains a randomalphabet letter, a numeral, a symbol, or a carriage return or space bar.Activation of any of these ‘symbols’ including the space bar or thecarriage return via a computer keyboard will yield an encrypted ‘symbol’in an encrypted message. Blank spaces in the encrypted message willindicate an encrypted symbol. It is not necessary that the matrixconsist of a 96×96 square. It can be expanded or compressed to adifferent size depending on the languages used.

[0012] b) the second component is a device called a Sliding Scale. Thisdevice is separate from the matrix and acts independently of it movingfrom left to right, or right to left, and vertically, either in adownward or upward motion in relation to the matrix. It contains on it'sface all of the alphabets, numerals and symbols including spaces for thespace bar and carriage return arranged systematically, A . . . Z, a . .. z, 0 9,˜ . . . /. It also has mounted on it an Index Pointer used forpositioning the Sliding Scale over an entry point into the matrix forthe purpose of selecting encrypted characters from the matrix.

[0013] c) The third component is the high level computer code containedherein as Appendixes 1 and 2, for encryption and decryption. This codemay be installed in the memory of a hard drive of a variety ofcomputers, on floppy disks or other storage media of various types foruse in computers. It should be noted that the above description ofcomponents is by way of explanation of their characteristics, they existonly in the computer code of the Appendixes.

[0014] The present invention may be implemented in a variety of waysusing both hardwired, and wireless systems. It can utilize the varietyof operating systems available in a multiplicity of computers such aspersonal computers, mid-range, mainframe, or super-computers. Theinvention consists of a unique method for producing “one time pad”messages utilizing the computer code of Appendixes 1, and 2, which canbe installed on a variety of computer drives or disk devices. These canbe used for transmission of encrypted data, or secure storage ofsensitive information in computer memory or other computer storagemedia. The computer code in the Appendixes contain the all theattributes of the randomized matrix and those of the Sliding Scale,these being activated by the Appendixes. The above cited algorithms areused to compose encrypted messages known as “one time pads” in extremelyrapid fashion and decrypts these messages also, in a rapid and timelymanner.

[0015] Referring to the drawings, FIG. 1. is a Vigenere Square matrix 1,used herein only to illustrate the initial positioning of the SlidingScale with respect to a matrix with a horizontal row outside and acrossthe top of the matrix 2. This outside row, hereinafter called theSliding Scale 2 is a separate device from the matrix 1 and is shown withan affixed index pointer 3. The sliding scale 2, with its affixed indexpointer 3 moves as one complete unit, independently of the randomizedmatrix 1′, but in coordination with it as directed by the computerprograms, Appendixes 1, and 2, installed in computer memory, orremovable and transportable floppy disks. It can move left to right orright to left and vertically in either direction. The actions andmotions of, and the literal message characters of the sliding scale 2are contained in the computer programs, Appendixes 1, and 2, whichdirect the Sliding Scale's coordinated interaction with the matrix 1′.These literal encrypted characters are also contained in the computerprograms, Appendixes 1 and 2.

[0016]FIG. 2, FIG. 3, FIG. 4, and FIG. 5, are all abbreviated schematicsof a modified random matrix 1′, each with an attendant Sliding Scale 2and its appended Index Pointer 3. They indicate the size of the presentinvention, being comprised of 96 rows, 4, 5, 6, and 96 columns, 7. Inpractice except as described herein each of these rows, 4, 5, 6, andcolumns 7 of the matrix 1′ contain the same characters, except randomlyscrambled, as those on the sliding scale 2, which are not scrambled butarranged systematically. FIGS. 6 and 7 are flow charts illustratingencryption and decryption programmed in Appendixes 1 and 2.

[0017] It is not necessary that the message characters of the slidingscale 2 be of the same language as those in the matrix 1′. The languagesmay vary, i.e., the sliding scale 2 in English and the matrix 1′characters in Sanskrit, or the sliding scale 2 in Russian and the matrix1′ in Japanese ideograms. The national language to be encrypted ispresent on the sliding scale 2, and the encrypted characters are presentin the matrix 1′. The combinations are many and varied wherein thesliding scale 2 and the matrix 1′ may each correspond to characters ofdiffering written languages. FIG. 2. in its rendition is only anillustrative example of an English representation of a matrix 1′ Thescrambled symbols of the matrix 1′ lie in consecutively numbered cellsof the matrix 1′ which are numbered from 1 to 9216, each of these cellsbeing a potential entry point into the matrix. .

[0018] In FIG. 2, Column 1, row 1, contains an X, 8; Column 8, row 2,contains an L, 8′; Column 11, row 3, contains a V, 8″. In practice allrows and columns shall contain encryption symbols, and non-symbols, suchas the spacer and the carriage return present on a keyboard. Thesenon-symbols are represented both on the sliding scale, 2, and in thematrix 1′, both appearing in encrypted messages as encrypted symbols andnot as spacers between groups of words. In conjunction with the SlidingScale 2 and as indicated in FIGS. 3, 4, and 5, messages of any lengthand complexity can be constructed based on programmed software asdirected by the Algorithms given in Appendixes 1, and 2.

[0019] Referring to FIG. 3. illustrates the initiation of encoding amessage by selection of an entry point 9, the 4^(th) cell of thematix,1′, and overlaying the sliding scale 2 with its appended indexpointer 3 above the entry point 9, in row 1, which is within the matrix1′, which contains the letter P, 9′. Moving laterally along the SlidingScale 2 the first letter of the message to be encoded is C, 10, residingon the sliding scale 2. The symbol beneath it and being in the same rowas the entry point (number 4 in row 1) of the matrix 1′ is A 11, whichis the first encoded symbol of the encoded message. Although thisinitial entry point 9 chosen is in row 1, any entry point from 1 to 9216may be chosen in any of the 96 rows. Referring to FIG. 4. illustratesthe choosing of the second encrypted symbol of the encrypted message.Move the sliding scale 2 down one row to the next row, 5, (row 2),whichis immediately beneath the row 1, 4 from which the first encryptedsymbol 11, of the message was picked. The symbol beneath the initialencoded A 11 of the matrix is Z, 12 being in row 2, 5, lying in Column6. Position the sliding scales index pointer 3 over the symbol Z, 12 inthis second row 5, which is immediately below the A 11 which was chosenas the first encoded symbol of the message. The second letter of themessage to be encoded is an E, 13. Move laterally down the sliding scale2 to the letter E, 13 on it. The symbol beneath it, being in the secondrow 5 of the matrix 1′, is the symbol R, 14 (in row 2) and lying inColumn 10, which is the second encoded symbol 14 of the encryptedmessage.

[0020] Referring to FIG. 5. illustrates the choosing of the thirdencrypted symbol of the encrypted message. Move the sliding scale 2 downone row to the next row 6, (row 3) which is immediately beneath row 2,from which the second encrypted symbol 14 of the message was picked. Thesymbol beneath the second encrypted symbol R 14, in row 3, 6, is U, 15,lying in Column 10. Position the sliding scale's 2 index pointer 3 abovethe U, 15 in row 3, (the symbol below the R symbol in row 2) and movelaterally along the sliding scale 2 to third letter to be encrypted,being in row 3, which is D, 16 on the sliding scale 2. The symbolbeneath the D 16 of the sliding scale 2, being in the third row 6 is a K17 which is the third encrypted symbol of the encrypted message, lyingin Column 13. Thus the letters CED are encrypted to the symbols ARK.Choosing different initial entry points other than 4 with its symbol P,9, would yield many variations of the encoded ARK.

[0021] Each succeeding symbol of the encrypted message is chosen in thesame manner by moving from entry point to entry point.

[0022] It is evident that choosing a different initial entry point willyield a different encrypted message with many possible variations.

[0023] It should be noted that if an entry point is chosen such that thesliding scale extends beyond the end of a row, the sliding scale wrapsback to the beginning of the same row.

[0024] While the invention has been shown and described with referenceto a preferred embodiment, it will be understood by those skilled in theart that various changes in form and detail may be made withoutdeparting from the spirit and scope of the invention. Further objectsand features of this invention will be apparent to those skilled in theart when considered in conjunction with the accompanying drawings.

[0025] In FIG. 6 and FIG. 7, the annotated numerals therein correspondto annotated numerals contained in the Appendixes.

[0026] With reference now to FIG. 6, and FIG. 7 there are depicted highlevel flow diagrams of the method of converting a literal alphabeticcharacter, numeral, or symbol, into an encrypted symbol, FIG. 6, ordecryption of encrypted symbols, FIG. 7 in accordance with the preferredembodiment of this invention. The computer program called Alphabet Soup,defined in the Appendixes 1 and 2 perform these functions. This programis contained either in a computer system memory or other computer mediadevices. The encryption process begins at start, 19. Items 20 and 21 ofthe flow chart are contained in the activated computer program.Selection of an entry point into matrix containing randomly scrambledalphabets, numerals, and symbols is the next step, 22. Step 23 acceptsthe character to be encrypted. Step 24 is an IF statement in computercode. If no more characters are to be encrypted and is the end of inputthen close the encrypted file and exit the program, steps 28 and 29. Ifthere are further characters to be encripted, encript the character 25and write the character to the output file 26. Re-compute a new startposition 27 and loop back to reading in a new character 23. This processcontinues as long as new characters to be encrypted are input to thecomputer code.

[0027] With regard to FIG. 7, decryption of en encrypted message isdefined in Appendix 2. Repeat steps 19, 20, and 21 which are listed assteps 30, 31, and 32. Step 33 inputs the start position, or entry point,of the encryption process. Read in an encrypted character 34 from theencrypted message. Step 35 is an IF statement in the computer code. Ifno more characters are to be read in from the encrypted message and wehave come to the end of input file 35, close the decrypted input file 38and exit the program 39. If there are further characters to be decrypted36, print out the decrypted character 37, loop back to read in the nextcharacter from the encrypted file 34. This process continues as long asnew characters to be decrypted are input to the computer code.

[0028] It is important to note that although the present invention hasbeen described in the context of a fully functional computer system,those skilled in the art will appreciate that the mechanisms of thepresent invention are capable of being distributed as a program productin a variety of forms, and that the present invention applies equallyregardless of the particular type of signal bearing media utilized toactually carry out the distribution. Examples of signal bearing mediainclude but are not limited to recordable type media such as floppydisks or CD-ROMS, or computer tapes, and transmission type media such asanalogue or digital communications links, both hard wired and wireless.APPENDIX 1 Encryption Algorithm PSEUDO CODE FOR ALPHABET SOUP /* TheEncryption algorithm reads in characters from a terminal, encrypts themand writes them out to an output file. When a Control-D character istyped, then the message is considered complete. */ Begin //(˜19) charmatrix[9216]; /* The matrix of 96 rows of 96 characters */ /* Fill 96 ×96 matrix with characters */ // (˜20) matrix[0] = ‘Y’; matrix[1] = ‘P’;... matrix[9214] = ‘x’; matrix[9215] = ‘&’; /* Fill alpha_array with the96 characters */ // (˜21) alpha_array[0] = ‘A’; alpha_array[1] = ‘B’;... alpha_array[94] = ‘ ‘; alpha_array[95] = ‘<cr>’; start_pos = X; /*start position is a random number X */ // (˜22) entry_pt = X; algorithm= start_pos/9216; /* algorithm = start_pos div 9216 */ start_pos =start_pos − (algorithm* 9216); while not end of input(CTRL-D) loop reada character ch // (˜23) if (ch == CTRL_D) // (˜24)  exit loop; if(algoithm == 0) // (˜25) start_pos = get_en_pos_0(ch, &start_pos); elseif (algorithm == 1)  start_pos = get_en_pos_1(ch, &start_pos); ... elseif (algorithm == 7) start_pos = get_en_pos_7(ch, &start_pos); /* writeto output file the encrypted character */ /* matrix[start_pos] is theencrypted character */ fwrite(matrix[start_pos]); // (˜26) if (algoithm== 0)  start_pos = start_pos + 96 + (entry_pt mod 96); else if(algorithm == n) ... if (start_pos > 9215) start_pos = start_pos − 9216;/* wrap back around to the beginning */ // (˜27) end loop close outputfile // (˜28) end // (29) /* This is the get_en_pos_0 routine foralgorithm 0. .. */ /* A number between 0 and 95 is returned,representing one of 96 characters */ int get_en_pos_0(ch, start_pos)begin start_pos = start_pos / 96; /* get to the starting row */ if (ch<= ‘Z’) and (ch >= ‘A’) tmp_pos = ch − ‘A’ /* tmp_pos = 0.25 */ else if(ch <= ‘z’) and (ch >= ‘a’) tmp_pos = 26 + (ch − ‘a’); /* tmp_pos =26..51 */ else if ... else if (ch == ‘ ‘) tmp_pos = 94; else if (ch ==‘<cr>’) tmp_pos = 95; tmp_pos = tmp_pos + start_pos; new_row = tmp_pos /96; if (new_row > start_row) tmp_pos = tmp_pos − 96; return tmp_pos end

[0029] APPENDIX 2 Decryption Algorithm /* The Decryption algorithm readsin characters from an input file, decrypts them and */ /* writes themout to a terminal screen. */ Begin // (˜30) char alpha_array[96]; /* Thearray that holds the 96 printable characters */ char matrix[9216]; /*The matrix of 96 rows of 96 characters */ /* Fill 96 × 96 matrix withcharacters */ // (˜31) matrix[0] = ‘Y’; matrix[1] = ‘p’; ...matrix[9214] = ‘x’; matrix[9215] = ‘&’; /* Fill alpha_array with the 96characters */ // (32) alpha_array[0] = ‘A’; alpha_array[1] = ‘B’; ...alpha_array[94] = ‘‘; alpha_array[95] = ‘<cr>’ start_pos = X; /* startposition is a random number X */ // (˜33) entry_pt = X; algorithm =start_pos / 9216; /* algorithm = start_pos div 9216 */ start_pos =start_pos − (algorithm* 9216); while not end of input file // (˜35) loop  read a character ch // (˜34)  if (algoithm == 0)   callget_de_pos_0(&offset, &start_pos, ch); // (˜36)  else if (algorithm== 1)   call get_de_pos_1(&offset, &start_pos, ch);  ...  else if(algorithm == 7)   call get_de_pos_7(&offset, &start_pos, ch); /*alpha_array[offset] is the decrypted character */  printf(“%c”,alpha_array[offset]); // (˜37)  end loop close input file // (˜38) end// (˜39) /* This is the get_de_pos_0 routine for algorithm 0. There are8 different algorithms. */ /* A offset into the alpha_array is returnedwhich represents one of 96 characters. */ /* An updated start_pos isalso returned */ void get_de_pos_0(offset, start_pos, ch) begin offset =0; row = start_pos / 96; /* get to the starting row */ i = start_pos; loop  new_row = i / 96;  if(new_row > row)   i = i − 96; /* wrap aroundto next row */  if(matrix[i] == ch)   exit loop; /* found the match */ offset = offset + 1;  i = i + 1;  end loop start_pos = i + 96 +(entry_pt mod 96); if(start_pos > 9215)  start_pos = start_pos − 9216;/* wrap around to the beginning */    end

We claim:
 1. A method for converting a literal message containingliteral message characters consisting of alphabets, numerals and symbolsinto an encrypted “one time pad” message containing literal encryptedmessage characters consisting of alphabets, numerals, and symbols,comprising the steps of: a. selecting an entry point cell into arandomized square matrix containing intersecting rows and columns ofequal length having consecutively numbered cells reading from 1 to 9216,and a randomly scattered literal encrypted character of alphabets,numerals, or symbols, within those numbered cells within the matrix; b.positioning an index pointer mounted on a sliding scale above theselected entry point cell, the sliding scale having literal charactersof alphabets, numerals, and symbols appended thereto, providing literalcharacters to be encrypted above the selected entry point cell; c.selecting from the sliding scale's literal characters, the letter,numeral, or symbol mounted on the sliding scale, to thereby betransposed from a literal character on the sliding scale to a literalencrypted character in a cell within the matrix for use in the literalencrypted message known as a “one time pad”; d. descend into the matrixin the column in which the selected literal character is positioned,stopping at the row in which the entry point cell is located, and at theintersection of that row and column is the initial literal encryptedcharacter of the message being encrypted; e. using the cell of theinitial selected literal encrypted letter, numeral, or symbol, move downvertically one row to the row beneath that of the initial selectedencrypted symbol, whereby the symbol immediately below the initiallyselected encrypted symbol becomes the second entry point cell, at thesecond entry point cell proceed by positioning the index pointer mountedon the sliding scale above the second entry point cell then selectingfrom the sliding scale's literal characters the second letter number, orsymbol, to be transposed from a literal character on the sliding scaleto a literal encrypted character in the matrix, thence entering thematrix in the column in which the literal character of the sliding scaleis positioned, stopping at the row in which the second entry point cellis located, choose the second literal encrypted character of theencrypted message from the same row as the second entry point cell; f.proceeding in this manner from entry point cell to entry point cell, tothereby transpose any number of literal message characters into aliteral encrypted message; g. and seeing that Alphabet Soup does notrequire priming by a key word or key alphabet, entry into the matrix inthis manner without the selection of a key word or key alphabet makesthis a keyless system; h. and it is not necessary that the language onthe Sliding Scale and that in the modified matrix be the same, sincethere is wide variety of languages possible allowing for many and variedcombinations in that the alphabets available on the Sliding Scale, inthe language to be encrypted, for example Russian, and the alphabets orsymbols of the modified matrix be of a different language, for exampleJapanese ideaograms, which become the encrypted symbols of an encryptedmessage; i. and in the case of creating an encrypted data-stream whenthe space bar or the carriage return are activated these will createencrypted symbols in that data-stream; j. also in an encrypteddata-stream, where blanks appear they represent encripted symbols inthat data-stream and will be sorted out during decription; k. thus eachdata-stream is an uninterrupted continuation of encrypted symbols thatupon decription is sorted out into sentences, paragraphs and whateverother format was typed during the encription of the message.
 2. Aconversion device, mounted in a computer system for converting literalmessage characters of any written national language into literalencrypted characters in an encrypted message known as a “one time pad”,this conversion implemented by inputs to a computer system via acomputer keyboard the conversion device comprised of any of a variety oftypes of floppy disks, CD's, tape or hard drive memories, used instorage of computer programs, the conversion device containing computerprograms which includes a matrix and a sliding scale used in convertingliteral message characters into literal encrypted characters, theconversion device accepting said literal message character computerkeyboard input, and converting the input into literal encryptedcharacter output, those computer programs directing the programmedactions within the conversion device, wherein the keyboard inputs areentered into the conversion device, which conversion device thereuponacts in conjunction with the matrix, and the sliding scale, the matrixbeing prompted by the computer program to output a random encryptedliteral character from that matrix, said encrypted output being acontinuous data-stream of any length, the encrypted data-stream beingdependent on the length of inputs, the encrypted data-stream outputbeing maintained in a data file in said computer system, or installed onvarious media used for the storage of computer data, or said data-streambeing forwarded to known recipients via many different types oftransport including hardwired and wireless systems, postal systems, orcouriers.
 3. A computer program product known as a one time padgenerator, residing on computer useable media, used for convertingliteral message characters into literal encrypted characters, theliteral message characters being input to a computer via the computerkeyboard, resulting in a computer output encrypted data-stream frominputs of literal message characters into the computer system, thecomputer program product comprising: a. program code means for providinga one time pad generator which outputs a multiplicity of literalencrypted message characters; b. a sliding scale program, this programacting in conjunction with a conversion matrix program, wherein eachentry of a literal message character contained in a data-stream to beencrypted, is programmed such that it enters the sliding scale program,whereby, in response to prompting of the sliding scale program acompanion encrypted character is selected from the conversion matrix,and; c. program code means for outputing an encrypted messagedata-stream known as a “one time pad”, comprised of all encryptedcharacters obtained from the conversion matrix, the matrix having beenprompted by the sliding scale, the sliding scale responding to computerkeyboard inputs, and; d. program code means for decrypting encrypteddata-stream messages which have been produced in accordance with thisinvention.